package com.exception.demo01;

/**
 * @author wuJiaWei
 * @version 1.0
 * @date 2024/8/14
 * @time 14:27:35
 */
public class Test {
    public static void main(String[] args) {
        int a = 1;
        int b = 0;

//        try {
//            new Test().test(a,b);
//        } catch (ArithmeticException e) {
//            e.printStackTrace();
//        }

//        try {
//            System.out.println(a/b);
//        } catch (ArithmeticException e) {
//            System.out.println(e.getMessage());
//            throw new ArithmeticException("除数不能为0");
//        }finally {
//            System.out.println("finally");
//        }
        //finally 可以不要finally,假设Io,资源,关闭

//        try {
//            System.out.println(a/b);
//        } catch (Error e) {//catch (想要捕获的异常类型)捕获异常
//            System.out.println("Error");
//        } catch (Exception e) {
//            System.out.println("Exception");
//        } catch (Throwable e) {
//            System.out.println("Throwable");
//        }finally { //处理善后工作
//            System.out.println("finally");
//        }
    }

    public void a(){
        b();
    }
    public void b(){
        a();
    }

    //假设这方法中，处理不了这个异常。方法上抛出异常
    public void test(int a,int b) throws ArithmeticException{
        if(b==0){//主动抛出异常
            throw new ArithmeticException("test");//主动抛出异常，一般在方法中使用
        }
    }


}
